package hu.mapro.magicroller.core;

import com.badlogic.gdx.math.Vector2;

public class MagicRollerConstants {

	// Dynamics
	
	public float FRICTION = 0.7f;
	public float DENSITY = 1f;
	public float MOTOR_SPEED = -10;
	public float MOTOR_TORQUE = 10;
	public float SUSPENSION_FREQUENCY = 10f;
	public float SUSPENSION_DAMPING = 0.8f;
	
	
	public float GROUND_FRICTION = FRICTION;
	public float RAMP_FRICTION = FRICTION;
	public float FLOOR_FRICTION = FRICTION;
	public float WHEEL_FRICTION = FRICTION;
	
	public float CAR_PLATFORM_DENSITY = DENSITY;
	public float WHEEL_DENSITY = DENSITY;
	public float RAMP_DENSITY = DENSITY;
	public float FLOOR_DENSITY = DENSITY;
	
	// Level
	
	public int P_HORIZONTAL_UP = MagicRollerLevelGenerator.P_DEFAULT;
	public int P_DIAGONAL_UP_DIAGONAL_UP = MagicRollerLevelGenerator.P_IMPOSSIBLE;
	public int P_DIAGONAL_DOWN_DIAGONAL_DOWN = MagicRollerLevelGenerator.P_IMPOSSIBLE;
	public int P_GAP = MagicRollerLevelGenerator.P_DEFAULT/2;
	
	
	
	// Game
	
	
	
	public float VIEW_WIDTH = 20f;
	public float STRIPE_WIDTH = 3f;
	public float SECTION_WIDTH = 3f;

	
	// Player
	
	public float CAR_WHEEL_RADIUS = 0.2f;
	
	public float CAR_PLATFORM_WIDTH = CAR_WHEEL_RADIUS * 4;
	public float CAR_PLATFORM_HEIGHT = CAR_WHEEL_RADIUS / 2;
	public float CAR_WIDTH = CAR_PLATFORM_WIDTH - CAR_PLATFORM_HEIGHT + 2*CAR_WHEEL_RADIUS;
	public float CAR_WHEEL_DISTANCE = CAR_PLATFORM_WIDTH-CAR_PLATFORM_HEIGHT;
	
	public float CAR_PLATFORM_BOTTOM = CAR_WHEEL_RADIUS - CAR_PLATFORM_HEIGHT/2;
	public float CAR_PLATFORM_TOP = CAR_WHEEL_RADIUS + CAR_PLATFORM_HEIGHT/2;
	
	public float CAR_HEIGHT = CAR_WHEEL_RADIUS*2;
	

	
	// Level

	public float RETREAT = 5f;
	public float MARGIN = CAR_WIDTH;
	public float REAR_VISIBILITY = (CAR_WIDTH + MARGIN) * 1.1f;
	public Vector2 CAR_POSITION = new Vector2(REAR_VISIBILITY+RETREAT+1.0f, 0f);
	
	
	
	public float MIN_STRIPE_WIDTH = CAR_WIDTH*2;
	public float MAX_STRIPE_WIDTH = CAR_WIDTH*3;
	
	public float FIRST_PLATFORM_WIDTH = CAR_POSITION.x+VIEW_WIDTH;
	
	public float MAX_UP = CAR_HEIGHT*2;
	public float MIN_UP = CAR_HEIGHT;
	public float MAX_DOWN = MAX_UP;
	public float MIN_DOWN = MIN_UP;
	
	public float BOTTOM_Y = -10f;
	public float LOWEST_PLATFORM = BOTTOM_Y+1;
	
	
	public float FLOOR_MIN_LEN = 0.1f;
	public float FLOOR_THICKNESS = 0.01f;
	

	
	
	
}
